// pages/form/form.js
import {formatDateTime} from '../../utils/util';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    imgList: [],
    scroll: 0,
    time: '00:00',
    date: '2000-00-00',
    formData: {
      area:'',
      comment:'',
      time:0,
      type:'',
      desc:'',
      source:'',
      level:0,
      findTime:''
    }
  },
  ChooseImage() {
    wx.chooseImage({
      count: 4, //默认9
      sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
      sourceType: ['album'], //从相册选择
      success: (res) => {
        console.log(res)
        if (this.data.imgList.length != 0) {
          this.setData({
            imgList: this.data.imgList.concat(res.tempFilePaths)
          })
        } else {
          this.setData({
            imgList: res.tempFilePaths
          })
        }
      }
    });
  },
  ViewImage(e) {
    wx.previewImage({
      urls: this.data.imgList,
      current: e.currentTarget.dataset.url
    });
  },
  DelImg(e) {
    wx.showModal({
      title: '提示',
      content: '确定要删除这个图片吗？',
      cancelText: '再看看',
      confirmText: '确认',
      success: res => {
        if (res.confirm) {
          this.data.imgList.splice(e.currentTarget.dataset.index, 1);
          this.setData({
            imgList: this.data.imgList
          })
        }
      }
    })
  },
  sleep: function (numberMillis) {
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    while (true) {
      now = new Date();
      if (now.getTime() > exitTime)
        return;
    }
  },
 
  /**
   * 这里我想的是，每次识别时，我先创建这个识别报告，之后再插入图片
   * 先创建报告：只在报告中插入userId和postureTyp。这里就是第一个提交做的事（https://www.sugarttt.top/zishi/report）
   * 如果这个报告插入成功（success(e){}），就再插入图片（https://www.sugarttt.top/zishi/upload?openid='+'ttp789'+'&msg='+1），这一步需要的参数有report表的主键id(e.data)，用户openid，先后端传递消息msg（msg不要丢，我后端要用于判断这是否是最后一张图片）
   */
  submit(){
    var that=this
    wx.request({
      url: 'http://localhost:8081/zishi/report',
      header: {
        "Content-Type": "application/x-www-form-urlencoded"
      },
      data:{
        // TODO 填充data
        userId: 1,
        postureType: 'LiftHeavy'
      },
      method: "POST",

      // 上面是插入一个没有拍照图片的report，这里我们再将图片更新到刚刚创建的report记录里
      success(e){
        console.log(e.data) // 打印刚刚插入的report的主键id，-1表示插入失败
        if (that.data.imgList != null) {
          let imgListLength = that.data.imgList.length
        for (var i = 0; i < imgListLength; i++) {
          wx.uploadFile({
            filePath: that.data.imgList[i],
            name: 'file',
            url: 'http://localhost:8081/zishi/upload?id='+e.data+'&openid='+'ttp789'+'&msg='+(i==imgListLength-1),
            header: {
              "Content-Type": "multipart/form-data"
            },
            success(e) {
              console.log("\n---\n"+e.data)
            }
          })
        }
      }
      wx.showToast({
        title: '发布成功',
      })
      that.sleep(2000)
      wx.switchTab({
        url: '/pages/index/index'
      })
      }
    })
  },
  
  TimeChange(e) {
    this.setData({
      time: e.detail.value
    })
    console.log(this.data.time)
  },
  DateChange(e) {
    this.setData({
      date: e.detail.value
    })
    console.log(new Date(this.data.date + ' ' + this.data.time + ':00'))
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  formInputChange(e) {

    const { field } = e.currentTarget.dataset
    this.setData({
      [`formData.${field}`]: e.detail.value
    })
    console.log(this.data.formData.desc)
  },
  inputChange(e){
    this.setData({
      inputCode:e.detail.value
    })
    console.log(this.data.inputCode)
  },
})